//
//  ViewController.m
//  PictureBrowser
//
//  Created by Jorn.Wu on 15/4/22.
//  Copyright (c) 2015年 Jorn.Wu. All rights reserved.
//

#import "ViewController.h"

#define kScreenHeight [UIScreen mainScreen].bounds.size.height
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
//自定义屏幕的尺寸
CGFloat kImgCount = 10;//图片的数量；
CGFloat scrollY =20;//距离Y轴的距离
CGFloat pageCtrlWidth = 200;//pageCtrl的宽度

@interface ViewController ()<UIScrollViewDelegate>//代理方法

@property (nonatomic,strong) UIScrollView *scrollView;
@property (nonatomic,strong) UIPageControl *pageCtrl;
@property (nonatomic,strong) NSTimer *timer;//定时去属性

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self initScrollView];//调用方法，是ScorllView显示在屏幕上
    [self initPageControl];
    [self addTimer];
}
//创建UIScrollvie

- (void)initScrollView{
    
    self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, scrollY, kScreenWidth, kScreenHeight - scrollY)];
    self.scrollView.delegate = self;
    for (int i = 0; i<kImgCount; i++) {
        UIImageView *imgview = [[UIImageView alloc]initWithFrame:CGRectMake(kScreenWidth * i, scrollY, kScreenWidth, kScreenHeight - scrollY)];//创建图像显示框，（可以在故事板中创建然后拖拽生成）；X坐标等于第i张图片乘以屏幕的宽度，因为图片的宽度等于屏幕的宽度；
        imgview.image = [UIImage imageNamed:[NSString stringWithFormat:@"huoying%d",i + 1]];
//        后面是通过图片的name获取图片
//        因为i是从0开始的，所以第几张图片是i+1；
        [self.scrollView addSubview:imgview];
//        添加到视图上；
    }
    self.scrollView.contentSize = CGSizeMake(kScreenWidth * kImgCount, kScreenHeight - 20);
//    contenSize相等于所有图片并排排列的宽度，高度等于屏幕高度减去导航栏的高度；
    self.scrollView.pagingEnabled = YES;//分页功能；
    [self.view addSubview:self.scrollView];
//    将scrollView]添加到view上；
    
    
}

//创建pageControl；
-  (void)initPageControl{
    self.pageCtrl = [[UIPageControl alloc]initWithFrame:CGRectMake((kScreenWidth - pageCtrlWidth)/2, kScreenHeight - scrollY, pageCtrlWidth, scrollY)];
//kScreenWidth - pageCtrlWidth)/2  是为了居中显示；
    self.pageCtrl.numberOfPages = kImgCount;//页码数为图片的数量；
    self.pageCtrl.pageIndicatorTintColor = [UIColor redColor];//设置显示颜色为红色；
    self.pageCtrl.currentPageIndicatorTintColor = [UIColor blueColor];//当前的颜色为蓝色
    [self.view insertSubview:self.pageCtrl aboveSubview:self.scrollView];//把视图添加在view上
}

- (void)addTimer{
    self.timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(nextPage) userInfo:nil repeats:YES];//定时器为2秒；
    [[NSRunLoop currentRunLoop]addTimer:self.timer forMode:NSRunLoopCommonModes];//消息多线程机制，确保计时器的一直运行；
}

- (void)nextPage{
    NSInteger page = self.pageCtrl.currentPage;//获取当前的图片的页码数；
    page++;
    if (page == kImgCount) {
        page = 0;//当图片到最后一张时，有重头开始；
    }
    CGPoint point = CGPointMake(kScreenWidth * page, 0);//设置图片位置的偏移量；
    [self.scrollView setContentOffset:point animated:YES];
}

#pragma mark - UIScrollView delegate
//通过代理方法来实现当滑动是改变当前的页码数；
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    NSInteger page = scrollView.contentOffset.x/kScreenWidth + 0.5;
    //计算当前的页码数；scrollView.contentOffset.x是x方向的偏移量；
//    +0.5是当视图上出现两张图片是滑动到下一张；
    self.pageCtrl.currentPage = page;
//    就是把page传给currenPage这个属性；也就是当前的图片改为下一张图片；
}

//当视图将要拖动的时候调用的代理方法
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
    [self removeTimer];//调用关闭定时器方法
    NSLog(@"beginDragging");//测试方法调用的时候
}

//当视图停止拖拽的时候
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self addTimer];
//        在停止2秒后开启定时器；
        NSLog(@"EndDragging");//测试方法调用的时候
    });
}

- (void)removeTimer{
//    当要拖动的时候关掉定时器
    [self.timer invalidate];
    self.timer = nil;
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
